还记得反向 RDP 攻击吗?易受路径遍历漏洞影响的客户端系统通过微软远程桌面协议远程访问服务器时可遭攻陷。
尽管微软在2019年7月发布的“补丁星期二”更新中已修复该漏洞 (CVE-2019-0887),但事实证明研究人员仅通过把路径中的反斜杠替换为正斜杠即可绕过该补丁。微软证实称该修复方案不当并在2020年2月发布的“不定星期二”更新中重新修复了该漏洞,目前它的编号是 CVE-2020-0655。Check Point 公司的研究人员披露称微软的解决方法是在 Windows 总添加了一个单独的应变措施,而并未改动绕过问题的根因即 API 函数 “PathCchCanonicalize”。显然,这应变措施对于 Windows 操作系统中的内置 RDP 客户端而言运行顺利,但该补丁不足以保护其它第三方 RDP 客户端免受有赖于微软开发的易受攻击的清理函数的同样攻击。Check Point 公司的研究员 Eyal Itkin 表示,“我们发现攻击者不仅能绕过微软的补丁,而且还能绕过根据微软最佳实践完成的任意标准化检查。”当接受文件作为输入的程序未能验证文件时,导致攻击者将文件存储在目标系统上的任意位置,从而导致文件内容被暴露在应用程序的根目录之外,这就是路径遍历攻击。研究人员指出,“远程受恶意软件感染的计算机能够接管任何尝试与之连接的客户端。例如,如果IT员工试图连接到受该恶意软件感染的远程公司计算机,那么该恶意软件就能够同时攻击IT员工的计算机。”该缺陷是在去年发现的,之后8月份的研究表明它同时影响微软 Hyper-V 硬件虚拟化平台。研究人员表示,2019年7月发布的补丁被绕过的原因在于在路径规范化函数 “PathCchCanonicalize”中存在一个问题,可导致恶意人员利用客户端和服务器之间的剪贴板同步化在客户端机器的任意路径上释放任意文件。换句话说,当连接到易受攻陷的 RDP 服务器使用剪贴板重定向功能时,服务器能够使用这个共享的 RDP 剪贴板将文件发送到客户端计算机并实现远程代码执行后果。尽管 Check Point 公司的研究员最初确认称“该修复方案匹配预期”,但仅通过将路径中的反向斜杠替换为正向斜杠的方式绕过该补丁。研究人员指出,“在 Windows 关于如何清理恶意路径的最佳实践指南中,PathCchCanonicalize 函数忽视了正向斜杠字符。我们通过逆向微软对该函数的实现验证了这一行为,发现它仅搜索 ‘\’ 而忽视 ‘/’,将路径分割成数个部分。”Check Point 公司表示,在试图检查 Mac 版本的微软远程桌面客户端时发现了这个漏洞,在去年开展的分析中漏掉了这个 RDP 客户端。有意思的是,该 macOS RDP 客户端本身并不易遭 CVE-2019-0887 攻击。由于这个主要的漏洞尚未被修复,因此研究人员担心对Windows 一个核心路径清理函数的绕过即可为很多其它可能受影响的软件产品带来严重风险,“微软未能在官方 API 中修复该漏洞,因此根据微软最佳实践编写的所有程序将易受路径遍历攻击。我们希望开发人员能够意识到这个威胁的存在,仔细检查程序并手动打补丁。”https://research.checkpoint.com/2020/reverse-rdp-the-path-not-taken/
https://thehackernews.com/2020/05/reverse-rdp-attack-patch.html
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。
点个 “在看” ,加油鸭~